import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import { fileURLToPath, URL } from "node:url";
import Components from "unplugin-vue-components/vite";
import { VantResolver } from "unplugin-vue-components/resolvers";
import pxtoViewport from "postcss-px-to-viewport-8-plugin";

// import eslintPlugin from "vite-plugin-eslint";

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    // eslintPlugin({
    //   include: ["src/**/*.ts", "src/**/*.vue", "src/*.ts", "src/*.vue"],
    // }),

    Components({
      //  自动导入配置
      resolvers: [VantResolver()],
    }),
  ],
  css: {
    // 这一块是 关于 postcss-px-to-viewport-8-plugin 配置
    postcss: {
      plugins: [
        pxtoViewport({
          // 要转化的单位
          unitToConvert: "px",
          // UI设计稿的大小
          viewportWidth: (o) => (o.includes("vant") ? 375 : 375),
          // 转换后的精度
          unitPrecision: 6,
          // 能转换的属性，*表示所有属性，!border表示border不转
          propList: ["*"],
          // 转换后的单位
          viewportUnit: "vw",
          // 字条转换后的单位
          fontViewportUnit: "vw",
          // 指定不转换为视窗单位的类名，
          selectorBlackList: ["ignore-"],
          // 最小转换的值，小于等于1不转
          minPixelValue: 1,
          // 是否在媒体查询的css代码中也进行转换，默认false
          mediaQuery: false,
          // 是否转换后直接更换属性值
          replace: true,
          // 忽略某些文件夹下的文件或特定文件，例如 'node_modules' 下的文件
          exclude: [],
          // 包含那些文件或者特定文件
          include: [],
          // 是否处理横屏情况
          landscape: false,
        }),
      ],
    },
  },
  resolve: {
    alias: {
      "@": fileURLToPath(new URL("./src", import.meta.url)),
    },
  },
});
